home *** CD-ROM | disk | FTP | other *** search
- UNIVER KERUNV - Universal for KERMIT-10
- SUBTTL Robert C. McQueen/NB
- REMARK Version 1 - Antonino N. J. Mione/NB/RCM
-
- ; Universals
-
- SEARCH GLXMAC ; Parser interface definitions
-
- ; Version number
-
- KERVER==3 ; Major version number
- KERMIN==0 ; Minor version number
- KEREDT==134 ; Edit level
- KERWHO==0 ; Customer edit
-
- ; Prologue
-
- PROLOG (KERUNV) ; Interface to GLXMAC correctly
- SUBTTL Table of Contents
-
- ;+
- ;.pag.lit
- ; Table of Contents of KERUNV
- ;
- ;
- ; Section Page
- ; 1. Table of Contents. . . . . . . . . . . . . . . . . . . . . . . . 2
- ; 2. Revision History . . . . . . . . . . . . . . . . . . . . . . . . 3
- ; 3. Definitions
- ; 3.1. Default . . . . . . . . . . . . . . . . . . . . . . . . . . 4
- ; 3.2. Operating system
- ; 3.2.1. TOPS-10
- ; 3.2.1.1. Channels. . . . . . . . . . . . . . . . . . . . . 4
- ; 3.2.1.2. Terminal info . . . . . . . . . . . . . . . . . . 5
- ; 3.3. Macro blocks. . . . . . . . . . . . . . . . . . . . . . . . 6
- ; 4. .FD block extensions . . . . . . . . . . . . . . . . . . . . . . 7
- ; 5. LOKWLD routine calling sequence. . . . . . . . . . . . . . . . . 8
- ; 6. Definitions
- ; 6.1. BLISS-36 interface symbols. . . . . . . . . . . . . . . . . 9
- ; 6.2. Symbols
- ; 6.2.1. File types (byte size) . . . . . . . . . . . . . . . . 10
- ; 6.3. Macro
- ; 6.3.1. BLSRTN - Define a BLISS called routine . . . . . . . . 11
- ; 6.3.2. BLSRET - Return a value to BLISS . . . . . . . . . . . 12
- ; 6.3.3. BLSCAL - Call a BLISS-36 routine . . . . . . . . . . . 13
- ; 6.3.4. KERRORS - Things passed to BLISS . . . . . . . . . . . 14
- ; 6.3.5. $KERR - Issue error messages . . . . . . . . . . . . . 15
- ; 6.3.6. KERERR - Issue an error to the remote. . . . . . . . . 16
- ; 6.3.7. Character masks. . . . . . . . . . . . . . . . . . . . 17
- ; 7. End of KERUNV. . . . . . . . . . . . . . . . . . . . . . . . . . 18
- ;
- ;.end lit.pag
- ;-
- SUBTTL Revision History
-
- COMMENT |
-
- Start of version 2(100)
-
- 100 By: Robert C. McQueen On: Yes.
- Lots of rewritting and other things.
-
- 101 By: Nick Bush On: 22-August-1983
- Fix setting up of seven or eight bit byte pointers for file
- I/O. Do this once when the file is opened, not each time
- a buffer is read. TOPS-10 is quite happy to use whatever
- byte size is stored in the buffer header byte pointer, and will
- use that size to determine the byte count.
-
- 102 By: Robert C. McQueen On: 29-August-1983
- Remove the TT% routines and use the common TT_ routines in the
- Bliss module KERTT.
-
- 103 By: Robert C. McQueen On: 16-September-1983
- Add XFR%STATUS and baud rate stats.
-
- 104 By: Robert C. McQueen & Nick Bush On: Many days
- - Add CRC support
- - Redo the SHOW command processing
- - Fix random bugs.
-
- 105 By: Robert C. McQueen & Nick Bush On: Many days
- - Implement IBM mode
- - Implement file disposition
- - Make CCL entry work
-
- 106 By: Nick Bush On: 3-November-1983
- Fix terminal handling for non-network systems. Also make sure
- the terminal will be available when we try to use it by grabing
- it when we set the line.
- Modules: KERMIT
-
- 107 By: Nick Bush On: 12-November-1983
- Add macro definition capability for SET options.
- Modules: KERMIT
-
- 110 By: Robert C. McQueen On: 16-November-1983
- Fix message number checks so that they all would be mod 64.
- Modules: KERUNV
-
- 111 By: Nick Bush On: 16-November-1983
- Add TAKE command.
- Modules: KERMIT
-
- 112 By: Nick Bush On: 17-November-1983
- Clear the input buffer before we send a message. This ignores any garbage
- which came in on the line since the last message we received.
- Modules: KERMIT
-
- 113 By: Nick Bush On: 14-December-1983
- Add some more single character commands for use during transfers.
- Control-A will type a status line, control-D will toggle debugging, and
- carriage return will force a timeout (therefore either a NAK or
- retransmission).
- Modules: KERMIT
-
- 114 By: Nick Bush On: 19-December-1983
- Default the transfer terminal to KERMIT: if the logical name exists and
- is a terminal.
-
- Remove FILE%DUMP, since KERMSG no longer references it.
- Modules: KERMIT
-
- 115 By: Nick Bush On: 5-January-1983
- Add support for different types of file names. This changes the
- SET FILE-xxx commands to be SET FILE xxx and adds a SET FILE NAMING
- command.
- Modules: KERMIT
-
- 116 By: Nick Bush On: 14-March-1984
- Add parsing for all REMOTE commands.
- Add support for some generic and local commands.
- Fix wild card processing to handle pathological names correctly.
- Modules: KERMIT,KERSYS,KERWLD
-
- 117 By: Nick Bush On: 14-March-1984
- Add code to support changing default path.
- Modules: KERSYS
-
- 120 By: Robert C. McQueen On: 28-March-1984
- Add bug fixes from WMU. Many thanks to the people out in Kalamazoo.
- Modules: KERMIT,KERWLD
-
- 121 By: Robert C. McQueen On: 28-March-1984
- Add SET PROMPT command. Start adding support for generic COPY and
- RENAME commands.
- Modules: KERUNV,KERMIT,KERWLD
-
- 122 By: Robert C. McQueen On: 29-March-1984
- Remove ADJBP instructions and add the five instructions that adjust byte
- pointers for the KI10s that use Kermit.'
- Modules: KERMIT
-
- 123 By: Nick Bush On: 2-April-1984
- Change SPACE generic command to use PPN of default path instead of users
- PPN if no argument is supplied.
- Make DIRECTORY and DELETE generic commands print out a header at the
- top of the list, and print file size in both words and allocated blocks.
- Add SPACE as synonym for DISK-USAGE command and ERASE as synonym for
- DELETE.
-
- Modules: KERMIT,KERSYS
-
- 124 By: Robert C. McQueen On: 8-May-1984
- Fix KERMIT-10's handling of remote directories
- Modules: KERWLD
-
- Start of Version 3(124)
-
- 125 By: Nick Bush On: 26-June-1984
- Add patches from CSM:
-
- - Wrong AC when setting PIM break set.
- - Checks for not-logged-in Kermits
- - Parity for CONNECT (implemented differently)
-
- Modules: KERMIT,KERSYS
-
- 126 By: Nick Bush On: 11-July-1984
- RECEIVE FOO.BAR would not work correctly. It thought the extension was
- wild-carded.
-
- Modules: KERMIT
-
- 127 By: David Stevens On: 10-July-1985
- Add in symbols required to implement XON-XOFF-processing.
-
- Modules: KERMIT, KERUNV
-
- 130 By: David Stevens On: 15-July-1985
- Fix problem of prompt in multiple file sends.
- - note this change caused a change in all versions of KERMIT
- using KERMSG.
-
- Modules: KERMIT, KERMSG
-
- 131 By: David Stevens On: 25-July-1985
- Add in SET HANDSHAKE to kermit
-
- Modules: KERMIT
-
- 132 By: David Stevens On: 29-July-1985
- Fix DFNMAC - IBM to set the handshake character instead of the
- IBM-MODE
-
- Modules: KERMIT
-
- 133 By: David Stevens On: 29-July-1985
- Eliminate SET IBM-MODE
-
- Modules: KERMIT,KERGLB
-
- 134 By: Dan Norstedt On: 19-June-1989
- Added Extended Packets
-
- Modules: KERMIT,KERGLB,KERMSG,KERUNV
- |
- SUBTTL Definitions -- Default
-
- ; The following are assembly parameters for KERMIT
- ND FTKLKS, 0 ; Don't assume KL or KS processor
-
- ND PDLLEN, 4000 ; Stack size
- TOPS10<
- ND D$MSFD, ^D5 ; Max number of SFDs
- ND D$BLKS, ^D128 ; Number of words to read in directory
- >; End of TOPS10 conditional
- ND D$PSIZ, ^D5 ; Max prompt size in words including null
- ND D$ESCAP,.CHCNY ;[125] Use control-Y for escape character
- ND D$MAXD, ^D128 ;[107] May have up to 128 macros
-
-
- SUBTTL Definitions -- Operating system -- TOPS-10 -- Channels
-
- ; The following are the various definitions for the TOPS-10 version of
- ; Kermit-10.
-
- TOPS10<
- FIL== 1 ; File channel
- TTY== 2 ; Kludge channel
- TTYHLD==3 ; Channel to hold onto terminal with
- >; End of TOPS10 conditional
-
-
- SUBTTL DEFINITIONS -- XON-XOFF Processing
-
- ; Symbols for XON/XOFF processing
-
- $XXDEF== 0 ;[127] Default
- $XXLCL== 1 ;[127] Local mode
- $XXREM== 2 ;[127] Remote mode
-
- SUBTTL Definitions -- Operating system -- TOPS-10 -- Terminal info
-
- ; The following are the terminal information blocks. These blocks are used
- ; to process the various information for a terminal.
-
- ;; !=========================================================================!
- ;; ! ANF node the terminal is connect to !
- ;; !-------------------------------------------------------------------------!
- ;; ! Line number on that node !
- ;; !-------------------------------------------------------------------------!
- ;; ! Sixbit device name !
- ;; !-------------------------------------------------------------------------!
- ;; ! Channel number !
- ;; !-------------------------------------------------------------------------!
- ;; ! Terminal UDX !
- ;; !-------------------------------------------------------------------------!
- ;; ! I/O status on failing UUOs !
- ;; !-------------------------------------------------------------------------!
- ;; ! Buffer address !
- ;; !-------------------------------------------------------------------------!
- ;; ! Buffer size in words !
- ;; !-------------------------------------------------------------------------!
- ;; \ \
- ;; \ Input buffer header \
- ;; \ \
- ;; !-------------------------------------------------------------------------!
- ;; \ \
- ;; \ Output buffer header \
- ;; \ \
- ;; !=========================================================================!
-
- TOPS10<
- $TTNOD==0 ; ANF node the terminal is connected to
- $TTLIN==1 ; Line number on that node
- $TTDEV==2 ; Device name
- $TTCHN==3 ; Terminal channel
- $TTUDX==4 ; Terminal UDX
- $TTIOS==5 ; Status from failing UUO
- $TTBAD==6 ; Address of the buffers
- $TTBSZ==7 ; Size of the buffers
- $TTIBH==10 ; Input buffer header offset
- $TTOBH==13 ; Output buffer header
- $TTPAG==16 ; Status of TTY PAGE when terminal opened
- $TTSIZ==17 ; Size of the block
- >; End of TOPS10 definitions
- SUBTTL Definitions -- Macro blocks
-
- ;[107] The following is the format used to store the SET macros.
- ;
- ;; !=========================================================================!
- ;; ! Address of this block ! Address of action routine (SETMAC) !
- ;; !-------------------------------------------------------------------------!
- ;; ! Offset to expansion text ! Length of entire block !
- ;; !=========================================================================!
- ;; \ \
- ;; \ Macro name in ASCIZ \
- ;; \ \
- ;; !=========================================================================!
- ;; \ \
- ;; \ Macro expansion in ASCIZ \
- ;; \ \
- ;; !=========================================================================!
- ;
- $MBRTN==0 ; Address of routine
- $MBOFS==1 ; Address of offset to text
- MB$OFS==LHMASK ; Offset is in left half
- $MBLEN==1 ; Offset to length
- MB$LEN==RHMASK ; In right halfword
- $MBNAM==2 ; Offset to name text
- SUBTTL .FD block extensions
-
- ; The .FD block extensions are to allow the handling of wild card processing
- ; in this module.
-
- ; Additional words
-
- TOPS10<
- .FDNMM==FDXSIZ ; Name mask
- .FDEXM==.FDNMM+1 ; Extension mask
- .FDDIM==.FDEXM+1 ; Offset to the directory mask
- .FDSFM==.FDDIM+1 ; First SFD mask
- .FDMOD==.FDSFM+5 ; Mod word
- .FDMOM==.FDMOD+1 ; Mask word for the mod word
- .FDSIZ==.FDMOM+1 ; Size of the block
-
- ; Offsets
-
- .FDD2M==.FDDIM-.FDPPN ; Define offset from one to another
-
- ; Flag bits in .FXMOD
-
- FD.DIR==1B0 ; Directory given
- FD.DFX==1B1 ; Use default directory
- >; End of TOPS10 conditional
- SUBTTL LG block definitions
-
- ; The following defines the block for the log file definitions
-
- $LGFLG==0 ; Flags
- LG$SET==1B18 ; Log file name set
- LG$APP==1B19 ; Append to file
- LG$OPN==1B20 ; File is open
- $LGIFN==$LGFLG+1 ; IFN for open file
- $LGFOB==$LGIFN+1 ; FOB for log file
- $LGFD== $LGFOB+FOB.MZ ; Offset for FD
- $LGSIZ==$LGFD+FDXSIZ ; Length of block
- SUBTTL LOKWLD routine calling sequence
-
- ; The following is the argument block that is used to call the TOPS-10 wild
- ; card processing routine. The FILOP block that is passed is required to have
- ; the LEB address store in it and the PTH block stored in the LEB.
-
- ;; !=========================================================================!
- ;; ! .FD block addrss !
- ;; !-------------------------------------------------------------------------!
- ;; ! Length of FILOP. block ! Address of FILOP. block !
- ;; !-------------------------------------------------------------------------!
- ;; ! Flags !
- ;; !=========================================================================!
-
- ; Argument block offsets
-
- TOPS10<
- $LKFDB==0 ; Offset to the .FD block
- $LKFLP==1 ; Filop. block information
- LK$FLN==LHMASK ; Length of the FILOP. block
- LK$FLP==RHMASK ; Address of the FILOP. block
- $LKFLG==2 ; Flags
- LK$FRS==1B0 ; First time being called
- LK$SFD==1B1 ; Return SFDs to the caller, otherwise
- ; they are suppressed
- $LKLEN==3 ; Length of the block
- >; End of TOPS10 conditional
- SUBTTL Definitions -- BLISS-36 interface symbols
-
- ; The following symbols are required to interface with BLISS-36 KERMSG.
-
- BLSTRU== 1 ; Bliss value of true
- BLSFAL== 0 ; Bliss value of false
- SUBTTL Definitions -- Symbols -- File types (byte size)
-
- ; The following are the allowed bytes sizes or types
-
- DEFINE $FLTYP<
- FT S7,<7-bit>
- FT S8,<8-bit>
- FT S36,<36-bit> ;;[127] 36 bit mode
- FT AUT,<Auto>
- >; End of $FLTYP macro definition
-
- DEFINE FT(NAM,TEXT)<
- $FB'NAM==..
- ..==..+1
- >; End of FT macro definition
-
- $FBSMIN==0 ; Min value
- ..==0 ; Initialize the value
- $FLTYP ; Expand the values
- $FBSMAX==3 ;[127] Max value
-
- ND D$FTP, $FBAUT ; Use auto as default
- SUBTTL Definitions -- Macro -- ADJSP - Adjust stack pointer
-
- ; This macro is only defined for running on KI or KA processors.
- ;It will generate the correct code from fixing a stack pointer.
-
- IFE FTKLKS,<
- DEFINE ADJSP(AC,VALUE)
- <IFGE VALUE,ADD AC,[XWD VALUE,VALUE]
- IFL VALUE,SUB AC,[XWD -VALUE,-VALUE]
- > ; End of DEFINE ADJSP
- > ; End of IFE FTKLKS
- SUBTTL Definitions -- Macro -- BLSRTN - Define a BLISS called routine
-
- ; BLSRTN - This macro will define a routine that is called by BLISS-36. It
- ; will define the offsets to the arguments on the stack.
- ;
- ; Usage:
- ;
- ; BLSRTN (Routine,<Arguments>)
- ;
-
- DEFINE BLSRTN(ROUTINE,ARGUMENTS)<
- ROUTINE::
- PUSH P,.FP ;; Save the frame pointer
- PUSH P,[[POP P,.FP ;; Restore 16
- POPJ P,]] ;; Return to the caller
- XMOVEI .FP,-2(P) ;; Point to the arguments
- IFNB <ARGUMENTS><
- .XCREF ;; Turn off cross reference
- ..==1 ;; First argument is -1 on the stack
- IRP <ARGUMENTS><
- .BLSRT(ARGUMENTS,\..) ;; Define the argument
- ..==..+1 ;; Count back
- >;; End of IRP <ARGUMENTS>
- .CREF ;; Turn CREF information back on
- >;; End of IFNB <ARGUMENTS>
- >; End of BLSRTN macro definition
-
- DEFINE .BLSRT(ITEM,OFFSET)<DEFINE ITEM<-^O'OFFSET'(.FP)>>
- SUBTTL Definitions -- Macro -- BLSRET - Return a value to BLISS
-
- ; BLSRET - This macro will return a value to the BLISS-36 routine. It will
- ; store the value to return in register 1.
-
- DEFINE BLSRET(ARGUMENT),<
- JRST [MOVX S1,ARGUMENT ;; Get the value to return
- $RET] ;; Return to the caller
- >; End of BLSRET macro definition
- SUBTTL Definitions -- Macro -- BLSCAL - Call a BLISS-36 routine
-
- ;+
- ;.hl1 BLSCAL
- ;This routine is used to call a BLISS-36 routine. It will cause the arguments
- ;that are given to be pushed on the stack and then the routine to be called.
- ;When the routine returns it will remove the items from the stack.
- ;.literal
- ;
- ; Usage:
- ; BLSCAL (PARITY,S1)
- ;
- ;.END LITERAL
- ;-
-
- DEFINE BLSCAL(ROUTINE,ARGS)<
- .XCREF ;; Turn off CREF Processing
- .CNT.==0 ;; Initialize the count
- .XCREF .CNT. ;; Don't cref this either
- .CREF ;; Turn the CREF stuff back on
- IFNB <ARGS><
- IRP <ARGS><
- PUSH P,ARGS ;; Put an item on the stack
- .CNT.==.CNT.+1 ;; Increment the count
- >;; End of IRP
- >;; IFNB <ARGS>
- PUSHJ P,ROUTINE ;; Call the BLISS routine
- IFN .CNT.,<
- ADJSP P,-.CNT. ;; Remove the items from the stack
- >;; End of IFN .CNT.
- >; End of BLSCAL macro definition
- SUBTTL Definitions -- Macro -- KERRORS - Things passed to BLISS
-
- ;+
- ;.HL1 KERRORS
- ;The following are the items that are passed back to the BLISS-36 routines.
- ;-
-
- DEFINE KERRORS<
- KER NORMAL,013,<Normal return>
- KER INTERNALERR,022,<Internal error>
- KER LINTOOLNG,102,<Command line too long>
- KER EOF,113,<End of file reached>
- KER RMS32,122,<!AS for !AS>
- KER NOMORFILES,133,<No more files>
- KER ILLFILTYP,142,<Illegal file type>
- KER REC%TOO%BIG,152,<Record to big for KERMIT's internal buffers>
- KER ERRMSG,162,<Received an E (error) packet>
- KER CHKSUMERR,172,<Checksum error>
- KER SNDERR,202,<Send failure>
- KER RETRIES,212,<Too many retries>
- KER EXIT,223,<Server requested exit>
- KER UNIMPLGEN,232,<Unimplemented generic command>
- KER UNISRV,242,<Unimplemented server command>
- KER PROTOERR,252,<Protocol error>
- KER ZEROLENMSG,262,<Zero length message>
- KER LINTERM,272,<Line specified is not a terminal>
- KER TIMEOUT,300,<Timed out waiting to receive/send packet>
- KER ABORTED,312,<Transfer aborted by user interrupt>
- KER RECERR,322,<Receive error - !AS>
- >; End of KERRORS macro definition
-
- DEFINE KER(TYPE,VALUE,TEXT)<TYPE=VALUE>
- KERRORS
- SUBTTL Definitions -- Macro -- $KERR - Issue error messages
-
- ;+
- ;.hl1 $KERR
- ;This macro will cause an error message to be issued.
- ;-
-
- DEFINE $KERR(Message)<
- TOPS10<
- $TEXT (,<?Kermit-10 Message>)
- >; End of TOPS10 conditional
- TOPS20<
- $TEXT (,<?Kermit-20 Message>)
- >; End of TOPS20 conditional
- >; End of $KERR macro definition
- SUBTTL Definitions -- Macro -- KERERR - Issue an error to the remote
-
- ;+
- ;.hl1 KERERR
- ;This macro is used to issue an error message to the remote KERMIT.
- ;.LITERAL
- ;
- ; Usage:
- ; KERERR (<Text>)
- ; (Return here)
- ;
- ;.end literal
- ;-
-
- DEFINE KERERR(TEXT)<
- GLOB <.KERERR>
- $CALL .KERERR
- JUMP [ITEXT(TEXT)]
- >; End of KERERR macro definition
- SUBTTL Definitions -- Macro -- Character masks
-
- ;+
- ;.hl1 Character mask macros
- ; The following set of macros will define a four word bit map, with
- ;each bit corresponding to a single ascii character. Only the first
- ;32 bits of each word are used. This is compatible with the corresponding
- ;macro in MACSYM, the usage of character masks in TOPS-20 JSYS's, and
- ;the usage in TECO.
- ;
- ;.hl2 BRINI$
- ; This macro will initialize the masks.
- ;.literal
- ;
- ; Usage:
- ; BRINI$(NAME)
- ;
- ; Where: NAME is the name to be used for building the mask. It should not
- ; be more than 3 characters, as it is used to generate symbol names.
- ;
- ;.end literal
- ;-
-
- DEFINE BRINI$(NAME,INIT),<
- IFNB <INIT>,<
- %.0'NAME==%.0'INIT ;; Copy the initial values (if any)
- %.1'NAME==%.1'INIT
- %.2'NAME==%.2'INIT
- %.3'NAME==%.3'INIT
- > ;; End of IFNB <INIT>
- IFB <INIT>,<
- %.0'NAME==<%.1'NAME==0> ;; If no initial value, use 0
- %.2'NAME==<%.3'NAME==0>
- > ;; End of IFB <INIT>
- > ; End of DEFINE BRINI$
-
- ;; Now define the macros for adding an removing characters
-
- DEFINE BRKCH$(NAME,FIRST,LAST)<
- $$$VAL==FIRST
- $$$VL1==FIRST
- IFNB <LAST>,<$$$VL1==LAST>
- .XCREF $$$VAL,$$$VL1
- BRK$$$(NAME,$$$VAL,$$$VL1,!)
- SUPPRESS $$$VAL,$$$VL1
- > ;; End of BRKCH$
-
- DEFINE UNBRK$(NAME,FIRST,LAST)<
- $$$VAL==FIRST
- $$$VL1==FIRST
- IFNB <LAST>,<$$$VL1==LAST>
- .XCREF $$$VAL,$$$VL1
- BRK$$$(NAME,$$$VAL,$$$VL1,&^-)
- SUPPRESS $$$VAL,$$$VL1
- > ;; End of UNBRK$
-
-
-
- DEFINE BRK$$$(NAME,FIRST,LAST,OP)<
- $$$FST==FIRST ;; Get initial value
- $$$LST==LAST ;; Get final value
- .XCREF $$$FST,$$$LST
- REPEAT $$$LST-$$$FST+1,<
- $$$WRD==$$$FST/^D32 ;; Determine which word gets this char
- $$$BIT==$$$FST-<$$$WRD*^D32> ;; And determine the bit
- IFE $$$WRD-4,< ;; Special 'char' for TECO?
- $$$WRD==3 ;; Yes, put in 3rd word
- $$$BIT==$$$BIT+^D32 ;; After 32'nd bit
- > ;; End of IFE $$$WRD-4
- BR$$$$(NAME,\"<$$$WRD+"0">,$$$BIT,OP)
- $$$FST==$$$FST+1
- > ;; End of REPEAT
- > ; End of BRK$$$
-
- DEFINE BR$$$$(NAME,WORD,BIT,OP)<%.'WORD'NAME==%.'WORD'NAME'OP'1B<BIT>>
-
-
- DEFINE BRGEN$(NAME)<EXP %.0'NAME,%.1'NAME,%.2'NAME,%.3'NAME>
-
- DEFINE BRWRD$(NAME,INDEX),<%.'INDEX'NAME>
-
-
- ; Now generate some common masks
-
- BRINI$(ALL) ; All characters
- BRKCH$(ALL,0,177) ; . . .
- SUBTTL End of KERUNV
-
- END
-